package com.yueqian.sc.db;

import java.sql.*;

/**
 * 这是一个开关数据库的工具类
 */
public class DBHelper {
    // 连接数据库的四个参数
    private static String DRIVER = "com.mysql.jdbc.Driver";// 连接数据库需要使用匹配的驱动程序，否则无法访问
    private static String URL = "jdbc:mysql://localhost:3306/hj_sc?useUnicode=true&characterEncoding=utf8";// 目标数据库的主机地址及端口、编码
    private static String USERNAME = "root";// 目标数据库的登录名
    private static String PASSWORD = "123456";// 目标数据库的登录密码


    // 加载驱动：5.0之后，可要可不要
    static {
        try {
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库连接
     *
     * @return
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USERNAME, PASSWORD);
    }

    /**
     * 关闭数据库（针对增删改）
     *
     * @param smt:主要是对数据库中的表数据进行增删改查
     * @param conn:这个主要是连接和关闭数据库，也就是建立数据库的连接
     */
    public static void close(Statement smt, Connection conn) {
        // 封装快捷键：alt+insert
        // try快捷键：ctrl+alt+t,alt+shift+z
        try {
            if (smt != null) {
                smt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

    /**
     * 关闭数据库（针对查询）
     *
     * @param rs：接收从数据库查询回来的数据
     * @param smt：主要是对数据库中的表数据进行增删改查
     * @param conn：这个主要是连接和关闭数据库，也就是建立数据库的连接
     *
     */
    public static void close(ResultSet rs, Statement smt, Connection conn) {
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        close(smt,conn);
    }

}
